(function ($, util) {
    "use strict";
    util.augment(util.BasePage, {
        /**
		 * 页面路由
		 */
        Route: {},
        /**
		 * 参数
		 */
        Param: {
            locationObj: {
                lat: 0,
                lng: 0,
                areaName: '',
                areaId:-1
            },
            pageIndex: 0,
            pageSize: 10,
            list: [],
            areaIndex: null,
            inputValue: ''
        },
        /**
		 * 初始化方法
		 * 页面参数初始化  页面方法初始化  等
		 * @param {Object} options
		 */
        init: function (options) {
            var self = this;
            self.mescroll = new MeScroll('mescroll', {
                down: {
                    auto: false, //是否在初始化完毕之后自动执行下拉回调callback; 默认true
                    callback: function () { self.downCallback.call(self) }  //下拉刷新的回调
                },
                up: {
                    auto: true, //是否在初始化时以上拉加载的方式自动加载第一页数据; 默认false
                    isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
                    callback: function () { self.upCallback.call(self) } //上拉回调,此处可简写; 相当于 callback: function (page) { upCallback(page); }
                }
            });

            let nowTime = new Date().getTime();
            let locationObj = Locstor.get("user-address");
            let res = {
                lat: 0,
                lng: 0,
                areaName: '',
                areaId: -1,
                expireDate: ''
            };
            Locstor.set("user-address", JSON.stringify(locationObj));
            self.saveLocationData(res);

            //if (locationObj && locationObj.expireDate && nowTime < locationObj.expireDate) {
            //    Object.assign(self.Param.locationObj, locationObj);
            //    // self.getListData();
            //} else {
            //    //初始化定位
            //    h5Location.browserLocation(function (res) {
            //        Object.assign(self.Param.locationObj, res);
            //        self.saveLocationData(res);
            //    }, function () {
            //        h5Location.getIpLocation(function (res) {
            //            Object.assign(self.Param.locationObj, res);
            //            self.saveLocationData(res);
            //        }, function () {
            //            util.toast('获取定位失败');
            //            //选取默认区域
            //            let res = {
            //                lat: '',
            //                lng: '',
            //                areaName: '',
            //                areaId: -1,
            //                expireDate: ''
            //            };
            //            Locstor.set("user-address", JSON.stringify(locationObj));
            //            self.saveLocationData(res);
            //        })
            //    })
            //}
        },
        /**
		 * 事件绑定
		 * @param {Object} options
		 */
        initEvent: function (options) {
            var self = this;
            //查询
            $('#searchBtn').click(function (e) {
                e.preventDefault();
                let value = $('#inputBox').val();
                if (util.isNullOrEmpty(value)) {
                    util.toast('请输入您要查询的内容');
                    return false;
                }
                if (util.isHasSpecialCharacters(value)) {
                    util.toast('请不要输入特殊字符');
                    return false;
                }
                self.Param.inputValue = value;
                self.Param.pageIndex = 1;
                self.Param.list = [];
                self.getListData(false);
            });
            //监听Input
            let tempValue = '';
            $('#inputBox').bind("input propertychange", function (event) {
                tempValue = $("#inputBox").val();
                tempValue.length > 0 ? $('#inputClear').show() : $('#inputClear').hide();
            });
            //清除input中的内容
            $('#inputClear').click(function () {
                $("#inputBox").val('');
                self.Param.inputValue = '';
                self.getListData(false);
                $('#inputClear').hide();
            });


            //返回阿牛
            $('#goBack').click(function () {
                window.history.go(-1);
                return false;
            });
            $('#listBox').on('click', "li", function (e) {
                var $target = $(e.currentTarget);
                let longitude = $target.data('longitude');
                let latitude = $target.data('latitude');
                let washname = $target.data('washname');
                let query = '?longitude=' + longitude + '&latitude=' + latitude + '&washname=' + washname;
                // query = encodeURIComponent(query);
                window.location.href = 'map.html' + query;
            });
            $("#inputBox").keypress(function (e) {
                if (e.keyCode === 13) {
                    e.preventDefault();
                    // 处理相关逻辑 
                    let value = $('#inputBox').val();
                    if (util.isNullOrEmpty(value)) {
                        util.toast('请输入您要查询的内容');
                        return false;
                    }
                    if (util.isHasSpecialCharacters(value)) {
                        util.toast('请不要输入特殊字符');
                        return false;
                    }
                    self.Param.inputValue = value;
                    self.Param.pageIndex = 1;
                    self.Param.list = [];
                    self.getListData(false);
                    $("#inputBox").blur();
                }
            })
        },
        /**
		 * 渲染页面
		 * 通过ajax对页面加载显示
		 * @param {Object} options
		 */
        initView: function (options) {
            var self = this;
        },
        /**
         * 下拉刷新
         */
        downCallback: function () {
            let self = this;
            self.mescroll.endSuccess();
            // self.Param.pageIndex = 1;
            // self.Param.list = [];
            // self.getListData(false);
        },
        /**
         * 上拉加载
         */
        upCallback: function () {
            let self = this;
            self.Param.pageIndex++;
            self.getListData(true);
        },
        /**
         * 设置存储定位
         */
        saveLocationData: function (res) {
            let self = this;
            let locationObj = {
                lat: res.lat,
                lng: res.lng,
                areaName: res.areaName,
                areaId:-1
            };
            let areaData = util.Data.areaData;
            //for (let i = 0; i < areaData[0].data.length; i++) {
            //    if (res.areaName == areaData[0].data[i].value) {
            //        locationObj.areaId = areaData[0].data[i].id;
            //        self.Param.areaIndex = i;
            //    }
            //}
            Object.assign(self.Param.locationObj, locationObj);
            var exp = new Date();
            locationObj.expireDate = exp.getTime() + 10 * 60 * 1000;
            Locstor.set("user-address", JSON.stringify(locationObj));
            //定位以后获取数据
            self.getListData(false);
        },


        /**
         * 获取店家数据
         */
        getListData: function (isAppend) {
            let self = this;
            let url = util.baseUrl + '/Common/GetWorkShops';
            util.ajax({
                url: url,
                data: {
                    districtId: self.Param.inputValue ? '0' : self.Param.locationObj.areaId,
                    pageIndex: self.Param.pageIndex,
                    pageSize: self.Param.pageSize,
                    longitude: self.Param.locationObj.lng,
                    latitude: self.Param.locationObj.lat,
                    search: self.Param.inputValue
                },
                success: function (res) {
                    let rdata = res.data;
                    if (res.status == 0 && rdata.rows.length) {
                        $('#noData').hide();
                        $('#listBox').show();
                        self.Param.list.push(rdata.rows);
                        self.mescroll.endBySize(rdata.rows.length, rdata.total);
                        self.randerHtml(rdata.rows, isAppend);
                    } else {
                        self.mescroll.endSuccess();
                        $('#noData').show();
                        $('#listBox').hide();
                    }
                },
                fail: function (err) {
                    $('#noData').show();
                    $('#listBox').hide();
                    self.mescroll.endErr();
                }
            })
        },
        /**
         * 渲染htnl
         */
        randerHtml: function (res, isAppend) {
            let self = this;
            let str = '';
            let imgUrl = '';
            for (let i = 0; i < res.length; i++) {
                imgUrl = res[i].ImageUrl ? res[i].ImageUrl : '../images/bg.jpg';
                str += '<li class="item" data-washname="' + res[i].WashName + '" data-longitude="' + res[i].Longitude + '" data-latitude="' + res[i].Latitude + '">'
                    + '  <div class="left">'
                    + '       <img class="img" src="' + imgUrl + '" alt="">'
                    + '  </div>'
                    + '  <div class="right">'
                    + '      <div class="title">' + res[i].WashName + '</div>'
                    + '      <div class="text">' + res[i].Address + '</div>'
                    + '      <div class="right-footer">'
                    + '         <i class="icon iconfont icondingwei"></i>'
                    + '         <span>' + res[i].Distance + 'km</span>'
                    + '      </div>'
                    + '  </div>'
                    + '</li>';
            }
            if (isAppend) {
                $('#listBox').append(str);//加在列表的后面,上拉加载
            } else {
                $('#listBox').html(str);//加在列表的前面,下拉刷新
            }
        }
    });
    //实例化类
    window.page = new util.BasePage();

})(jQuery, util);
